//
//  YCDownloadDataManager.h
//  YCSchool
//
//  Created by Yanglixia on 16/5/15.
//  Copyright © 2016年 yanglinxia. All rights reserved.
//

#import <Foundation/Foundation.h>

///下载数据来源
typedef NS_ENUM(NSUInteger,YCDownloadDataManagerDataFrom)
{
    ///缓存
    YCDownloadDataManagerDataFromCache,
    ///下载
    YCDownloadDataManagerDataFromInternet,
};

/**
 *  下载数据完成回调
 *
 *  @param data 返回的数据
 *  @param from 数据来源
 */
typedef void(^YCDownloadCompletionHandlerCallBack)(NSURLResponse * response, NSURL * filePath,YCDownloadDataManagerDataFrom datafrom,NSError * error);


///下载数据管理器
@interface YCDownloadDataManager : NSObject

///缓存目录地址
@property (nonatomic,readonly) NSString *cachePath;

/**
 *  获取数据下载管理器单例
 *
 *  @return 单例
 */
+ (instancetype)sharedManager;

/**
 *  初始化数据下载管理器
 *
 *  @param cachePath 缓存目录
 *
 *  @return 对象
 */
- (instancetype)initWithCachePath:(NSString *)cachePath;

/**
 *  从网络下载数据并保存到本地
 *
 *  @param url             网络数据URL
 *  @param successCallBack 下载完成回调
 *
 *  @return 启动成功
 */
- (BOOL)downloadDataWithURL:(NSURL *)url
            completionHandlerCallBack:(YCDownloadCompletionHandlerCallBack)completionHandlerCallBack;

- (BOOL)cacheExitsForURL:(NSURL *)url;
@end
